What is eslint-plugin-playwright?
eslint-plugin-playwright is an ESLint plugin that provides linting rules specific to Playwright, a Node.js library for browser automation. This plugin helps ensure best practices and code quality when writing tests with Playwright.
What are eslint-plugin-playwright's main functionalities?
No Page Pause
This rule disallows the use of `page.pause()` in your Playwright tests to prevent unintended pauses during test execution.
module.exports = {
plugins: ['playwright'],
rules: {
'playwright/no-page-pause': 'error'
}
};
No Element Handle
This rule discourages the use of `elementHandle` in favor of using locators, which are more robust and easier to work with.
module.exports = {
plugins: ['playwright'],
rules: {
'playwright/no-element-handle': 'error'
}
};
No Wait For Timeout
This rule prevents the use of `page.waitForTimeout()` to avoid flaky tests caused by arbitrary wait times.
module.exports = {
plugins: ['playwright'],
rules: {
'playwright/no-wait-for-timeout': 'error'
}
};
Other packages similar to eslint-plugin-playwright
eslint-plugin-jest
eslint-plugin-jest provides linting rules specific to Jest, a popular JavaScript testing framework. It helps enforce best practices and code quality in Jest tests. While eslint-plugin-playwright focuses on Playwright-specific rules, eslint-plugin-jest is tailored for Jest.
eslint-plugin-cypress
eslint-plugin-cypress offers linting rules for Cypress, another end-to-end testing framework. It ensures best practices and code quality in Cypress tests. Similar to eslint-plugin-playwright, but for Cypress instead of Playwright.
eslint-plugin-testing-library
eslint-plugin-testing-library provides linting rules for Testing Library, a set of utilities for testing UI components. It helps ensure best practices and code quality when using Testing Library. While eslint-plugin-playwright is for Playwright, this plugin is for Testing Library.
ESLint Plugin Playwright
ESLint plugin for your Playwright testing needs.
Installation
Yarn
yarn add -D eslint-plugin-playwright
NPM
npm install -D eslint-plugin-playwright
Usage
This plugin bundles two configurations to work with both @playwright/test
or jest-playwright
.
{
"extends": ["plugin:playwright/playwright-test"]
}
{
"extends": ["plugin:playwright/jest-playwright"]
}
Rules
missing-playwright-await
🔧
Identify false positives when async Playwright APIs are not properly awaited.
Example
Example of incorrect code for this rule:
expect(page).toMatchText("text");
test.step("clicks the button", async () => {
await page.click("button");
});
Example of correct code for this rule:
await expect(page).toMatchText("text");
await test.step("clicks the button", async () => {
await page.click("button");
});
Options
The rule accepts a non-required option which can be used to specify custom matchers which this rule should also warn about. This is useful when creating your own async expect
matchers.
{
"playwright/missing-playwright-await": [
"error",
{ "customMatchers": ["toBeCustomThing"] }
]
}
no-page-pause
Prevent usage of page.pause()
.
Example
Example of incorrect code for this rule:
await page.click('button');
await page.pause();
Example of correct code for this rule:
await page.click('button');